class TrianglePrinter:

  def __init__(self):
    self.n = 1
  
  # 创建一个迭代器, 返回迭代器本身
  # 这个属性方法只会被执行一次
  def __iter__(self):
    return self

  # 对象每次迭代都会调用这个特殊的成员方法
  # 这个属性方法在迭代的时候会被多次执行
  def __next__(self):
    str = '*' * (self.n * 2 - 1)
    self.n += 1
    return str

triangle = TrianglePrinter()

for line in triangle:
  if len(line) > 13: break
  print(line)